package com.kcht.itsed.mws.alespecadapter.facade;

import com.kcht.itsed.mws.commmodel.PhysicalReaderTemplate;
import com.kcht.itsed.mws.commmodel.TMDatatypeFormatTemplate;


/**
 * 中间件系统中各类插件的注册器
 * 
 * 相关插件在其Startup中，调用本接口的方法来注册插件
 * @author 张文硕
 *
 */
public interface IMwsPluginRegister {

	/**
	 * 注册设备类型
	 * @param deviceClassName	设备类型名
	 * @param description	描述
	 * @param physicalReaderTemplate	物理设备定义模板
	 */
	void registerDeviceClass(String deviceClassName, String description, PhysicalReaderTemplate physicalReaderTemplate);

	/**
	 * 注册标签区解码器
	 * @param decoderName	解码器名称
	 * @param description	描述
	 * @param tagDecoderCls	解码器类
	 * @param tmDatatypeFormatTemplate	标签区规则定义模板
	 */
	void registerTagDecoder(String decoderName, String description, Class<? extends ITagDataDecoder> tagDecoderCls, TMDatatypeFormatTemplate tmDatatypeFormatTemplate);

	/**
	 * 注册阅读器映射器
	 * @param mapperName	映射器名称
	 * @param description	描述
	 * @param readerMapper	映射器类
	 */
	void registerReaderMapper(String mapperName, String description, Class<? extends IReaderMapping> readerMapper);
}
